# 按位与 &
''' 都为1 为1
5的二进制是 101
7的二进制是 111
---------------
          101 = 5
'''
print(5 & 7)


# 按位或 |
''' 有1取1 没1就是0 
5的二进制是 011
4的二进制是 100
---------------
          111 = 7
'''
print(3 | 4)

# 按位异或 ^
''' 两个不同为1
2的二进制是 010
4的二进制是 100
---------------
          110 = 6
'''
print(2 ^ 4)

# 按位取反 ~
'''第一位标识正负 0正  1负数 将所有0变为1 将所有1变为0
1的二进制是 0  01
---------------
     
        1  10 = -2
最简单的方法 就是在 十进制基础上 加一 取负数就行
'''
print(~1)

''' 往左移一位
5的二进制是 101
          1010 = 10
          10100 = 20
'''
print(5<<1)
print(5<<2)